انتقال Linux نصب شده به کامپیوتر دیگر
یکی از مسائلی که همیشه در سیستم عاملهای ویندوز 95 به بعد ( یعنی تا همین الان که ویندوز 2003 هم آمده ) وجود داشته ، این بوده است که شما در صورتیکه کامپیوتر جدیدی تهیه می کردید و می خواستید از هارد دیسک قدیمی خودتان در دستگاه جدید استفاده کنید ، مجبور بودید که ویندوز قبلی را در دستگاه جدید پاک کنید و از اول ویندوز جدیدی برای این کامپیوتر جدید نصب کنید . حالا شاید خیلی ها بگویند که نه لازم نیست و ... ! اما همگی خوب می دانند که ویندوز در سیستم جدید بسیار مشکلات زیادی پیدا می کنند که اکثرا ترجیح می دهند که ویندوز را از اول برای کامپیوتر جدید نصب کنند . یکی از عمده دلایل این قضیه شناساندن Hardware های جدید و درایور ها آنها در ویندوز است . یعنی باید Hardware های قبلی از بین برود و Hardware های جدید شناسانده شود تا سیستم بتواند راحت کار کند . در Linux این قضیه بسیار ساده و راحت است . چرا ؟! به دلیل اینکه در Linux موقعی که Kernel در ابتدای کار Load می شود از اول همه Hardware ها را شروع به شناختن می کند و اطلاعاتی مانند نوع IDE Controller ، کارت شبکه ، CD-ROM ها و ... را در همان ابتدا از سیستم خارج می کند . اینکه در جای خاصی این اطلاعات را نگه نمی دارد و هر زمان که سیستم Boot می شود در همان ابتدا بسیار سریع همه این اطلاعات را پیدا می کند ( یعنی دقیقا کاری که ویندوز نمی کند و اگر قرار باشد که چنین کاری انجام دهد باید برای هر بار Restart ویندوز حداقل نیم ساعت وقت صرف کنیم ) باعث شده است که شما بدون هیچ نگرانی Linux ای را که بر روی کامپیوتر دیگر نصب شده است با خیالی آسوده بر روی کامپیوتری دیگر منتقل کنید . در اینجا قصد دارم مراحلی را که در انتقال یک دیسک سخت حاوی سیستم عامل Linux نصب شده و اطلاعات داخل آن ، به یک کامپیوتر جدید با قطعات جدید باید طی کنید شرح دهم . 1- ابتدا Case های دو کامپیوترتان ( قدیمی و جدید ) را باز کنید و Harddisk سیستم قدیمیتان را بر روی سیستم جدید نصب کنید . 2- در صورتیکه سیستم جدید شما دارای Harddisk جدیدی می باشد و می خواهید که این دیسک جدید را بعدا استفاده کنید و در حال حاضر به صورت Master بر روی دستگاه نصب شده است ، هارد دیسک قدیمی را به صورت Slave ( با تنظیم Jumper های مربوط به هر دو دیسک ) بر روی سیستم جدید نصب کنید و مطمئن شوید که BIOS کامپیوتر هر دو دیسک را به درستی شناسایی کند . 3- در صورتیکه از همان Harddisk قدیمی به عنوان تنها دیسک در سیستم جدید استفاده می کنید باید Linux شما مانند قبل با اجرا شدن Boot Loader مربوطه ( مانند Lilo و یا Grub ) اجرا شده و بدون هیچ مشکلی سیستم شما بالا بیاید . اما اگر هارد دیسک سیستم قبلی خود را به سیستم جدید اضافه کرده اید ( یعنی هارد جدیدی در Master سیستم جدید قبلا وجود داشته و شما هارد دیسک سیستم قبلی را به صورت Slave به آن اضافه کرده اید ) باید CD مربوط به Linux خود را داخل درایو دستگاه جدید قرار دهید و در BIOS بخواهید که ابتدا از روی CD-ROM سیستم را راه اندازی نماید . 4- پس از Boot شدن از روی CD-ROM مربوطه منوی مربوط به Boot ظاهر می شود که شما باید گزینه Rescue را با پارامتر شبیه به زیر صدا کنید : ( در اینجا Boot Loader مربوط به Debian استفاده شده است ، اما Boot Loader های دیگر مانند RedHat هم به همین شکل می باشند )
linux:# rescue /dev/hdb1 / این دستور به Boot Loader می گوید که در حالت Resuce ( نجات ) سیستم رو شروع کند طوری که Root دایرکتوری آن Partition اول هارد دیسک دوم ( یعنی همان هارد دیسک قدیمی ) باشد . این کار باعث می شود که سیستم Linux قبلی شما Load شود ، ولی تنها نکته این است که / آن که همان Partition مورد نظر ماست به صورت Read Only در دسترس شما قرار گیرد . 5- برای اینکه بتوانید تغییرات دائمی بر روی Boot Loader اصلی سیستم که در بر روی دیسک سخت قرار دارد اعمال کنید که به صورت عادی بر روی کامپیوتر جدید شما بالا بیاید ، لازم است که / را به صورت Read/Write در آن Mount کنید که بتوانید تغییرات را بر روی فایل تنظیم Boot Loader ( مثلا Lilo.conf ) ثبت کنید . برای این منظور از دستور
mount -o remount rw / 6- باید تنظیمات مربوط به Boot Loader را تغییر دهید که از دیسک دوم سیستم به جای دیسک اول سیستم برای خواندن Kernel و Load کردن آن استفاده کنید . من در اینجا در مورد Boot Loader رایج Lilo توضیح می دهم . شما می توانید بر اساس این توضیحات تنظیمات Boot Loader های دیگر مانند Grub را خودتان تغییر دهید . در Lilo شما باید فایل etc/lilo.conf/ را تغییر دهید . این فایل را ویرایش کنید و مکانی را که به dev/hda1/ برای Load کردن kernel از این مکان اشاره می کند به مکان جدید آن که dev/hdb1/ می باشد تغییر دهید . خطی مانند این :
root = /dev/hda1 باید به خطی شبیه به این تبدیل شود :
root = /dev/hdb1 پس از انجام این تغییر ، آنرا save کنید و در محیط shell یک باز lilo را با زدن دستور زیر اجرا کنید :
# /sbin/lilo 7- تغییر دیگری که باید بدهید در فایل etc/fstab/ می باشد که در آن باید آدرس جدید partition ها را مشخص کنید که در ابتدای کار بر اساس آدرسهای جدید آنها mount شود . همانند lilo.conf باید آدرسهای اشاره کننده به dev/hdaX/ به صورت dev/hdbX/ در آورید و فایل fstab را ذخیره کنید . 8- دستور reboot را بزنید تا کامپیوتر با تغییرات جدید مجددا راه اندازی گردد . در راه اندازی جدید شما Linux قبلی شما بدون هیچ مشکلی باید شروع به Load شدن کند .
در اینجا ذکر چند نکته ضروری می باشد : 1- در صورتیکه می خواهید از Harddisk جدید خود که در dev/hda/ نصب شده است استفاده کنید باید توسط fdisk /dev/hda ابتدا آنرا partition بندی کنید و سپس توسط mkfs آنرا format کنید و سپس partition های ایجاد شده را در جاهایی که می خواهید mount کنید . 2- در صورتیکه kernel قبلی شما مشخصا برای سیستم قبلی شما compile شده بوده است ، شاید از hardware های جدیدی که در سیستم جدید دارید پشتیبانی نکند . برای این منظور باید source های kernel را در اختیار داشته باشید تا بتوانید برای سیستم جدید خود kernel جدیدی با مشخصات آن ایجاد کنید . ( kernel پیش فرض RedHat و یا Debian معمولا از اکثر Hardware ها به صورت پیش فرض پشتیبانی می کند ) 3- دقت که کنید که CPU جدید شما باید سازگار با CPU قبلی شما باشد تا Kernel سیستم قبلی بر روی آن Load شود . معمولا در i386 ها سیستم های جدیدتر قبلی ها را پشتیبانی می کنند ، اما بالعکس آن صادق نیست . |